


hide / seek

by antiseed (knightspur)



Series: romance is boring [1]
Category: SEVENTEEN (Band)
Genre: Accidental Voyeurism, Alternate Universe - College/University, Camboy Kim Mingyu, Dom/sub Undertones, Edgeplay, Knotting Dildos, M/M, Masturbation, Porn With Plot, Praise Kink, Puppy Play, Sex Toys
Language: English
Status: Completed
Published: 2018-08-23
Updated: 2018-08-23
Packaged: 2019-06-23 18:10:24
Rating: Explicit
Warnings: No Archive Warnings Apply
Chapters: 1
Words: 7,564
Publisher: archiveofourown.org
Story URL: https://archiveofourown.org/works/15612030
Author URL: https://archiveofourown.org/users/knightspur/pseuds/antiseed
Summary: The corner of the screen claims his username is 9ood_boy which isn’t really a proper name at all. A weirdly high number of the people are referring to him as”puppy”.They’re also feeding him a steady supply of money in the form of tokens bought through the site that Minghao has seen at least 15 ads trying to sell him since he opened the site.





	hide / seek

Minghao doesn’t really think he’s been _that_ surly all week until Soonyoung gives him a look and tells him there’s this “totally sexy” webcam site that Minghao should check out. He says it nonchalantly, or at least as nonchalantly as you can tell your friend that he hasn’t been jerking off enough lately. Minghao nearly snaps at him before he realizes that would probably only add to Soonyoung’s assumptions about his sex life.

Or lack thereof. The problem Minghao has, in the end, is that Soonyoung isn’t really wrong. After making the stupid decision to double major, Minghao hardly has time to think about what’s going on with his dick. 

So he doesn’t expect to suddenly have the time to check out Soonyoung’s suggestion (and try not to think about the fact that this is apparently what Soonyoung looks at when he jerks off. A thought Minghao doesn’t know what to do with the second it pops into his head so he files it away in the furthest corner he can.) But the members of his group project bail out of their meeting at the last minute and his flatmate is gone for a while and Minghao ends up staring at the empty scene of his laptop for all of forty-five seconds before he ends up typing the URL into his browser.

The site, as it turns out, is fairly sparsely populated with live videos to tune into, probably because Minghao is trying to get off in the middle of a Wednesday afternoon and it’s not exactly a high traffic time of day. Still, that means Minghao scrolls through the first page and finds that the second is almost totally empty. He could spend time trying to scrutinize each of them before clicking, but really he just clicks on the first one with an attractive enough guy in the thumbnail.

It’s not a bad choice. When the window loads, the guy is certainly hot— long-limbed and tan with neat soft brown hair and a black mask covering his face from the tip of his nose to the bottom of his chin. He has pretty eyes though; deep brown and tapered off at the corners with thick eyelashes. He’s leaning in close to the camera, shirtless, the squint of his eyes suggesting that under the mask he’s smiling.

“Did anybody miss me?” He asks, his voice not as low as Minghao might have expected. It’s surprisingly warm too, just like the look in his eyes. It makes it seem like his enthusiasm for the audience might not be totally manufactured. He’s quiet for a moment, scanning over the chat. It seems like his smile must get wider, his shoulders wiggling slightly. 

“What? You wanna see it already?” He asks, dropping his eyes in a fake coy gesture that still makes Minghao lean curiously toward his screen anyway. The chat scrolls frantically upward with people insisting that the guy should show them whatever it is.

His dick, probably. Minghao isn’t anticipating much of a build up if he’s already undressing. The corner of the screen claims his username is 9ood_boy which isn’t really a proper name at all. A weirdly high number of the people are referring to him as _”puppy”_.

They’re also feeding him a steady supply of money in the form of tokens bought through the site that Minghao has seen at least 15 ads trying to sell him since he opened the site.

“Okay,” the boy— Puppy, whatever— says, leaning slowly back from the camera.

He has a nicely formed chest, though that’s not really what Minghao is looking at. He has a pair of ears on his head that Minghao somehow hadn’t noticed before— fake, but standing upright and matching the color of his hair— but that’s still not what Minghao is focused on.

He tilts his head back slightly to show off the thick band of black leather wrapped around his throat. There’s a series of connected chains that drape from the bottom to hang over his collarbone like a fine metal mesh, the bright silver standing out against his dark complexion. He’s sitting up on his knees, hands gathered in front of him and pressing into the bed, like trying to push his chest out.

This is apparently the _it_ that people were waiting on because the chat starts moving at such a frantic pace that Minghao doesn’t even try to follow it anymore.

“I went and bought a new collar so I could look pretty for you,” he says, sounding genuinely cheerful about it. He lifts one hand, sliding his fingers up his chest to smooth them over the chain where it meets the leather. “Do you like it?”

Minghao isn’t sure he should exactly be so intrigued with this, but he can’t deny that the guy certainly does look pretty with the dark leather snug around his throat. His hand doesn’t stop moving, drifting over his skin in a way that seems thoughtful, almost lazy, rather than calculated toward being sexy. There’s something about it that’s almost endearing for a reason Minghao can’t name and doesn’t really want to figure out, either.

Puppy (Minghao doesn’t have anything better to call him) ducks his head and giggles when he reads the messages. Actually really giggles.

“I get kinda shy when people compliment me like this, y’know,” he says, leaning in toward the screen. He ends up changing positions, pushing his knees under him and spreading them out wide until he has his chest lowered to the bed and his ass hovering in the air behind him, tight black briefs clinging to his skin. He puts his hands under his chin, his eyes wide and lit bright from the screen. It casts a slightly blue cast over his skin and Minghao thinks he’s maybe smiling behind the mask again.

“Does everyone wanna play with me?” He asks, his tone bright but a little bit of a lilt to his words like he’s just starting to tease at more. He gives his hips a little wiggle, apparently committed to the whole imitating an excited dog thing. It’s kinda cute though, Minghao has to admit, and he likes the way the whole curve of Puppy’s back is visible when he pushes his hips up higher. He reads over the chat once again, humming along with the buzz of messages.

“Don’t be mean to me,” he says, drawing his voice out in a whine. He picks himself up, running his hands over his chest with more purpose now, his thumbs skirting just to the side of the dark buds of his nipples. He has his legs pressed tight together like he’s shy, his head ducked slightly. He runs his palm over his stomach, rubbing it up and down like he’s nervous. Minghao doubts it’s anything other than an act, but it’s convincing nonetheless. Puppy sighs, loud enough to be heard through the mask.

“I’ve been lonely all day,” he continues, almost like he’s confessing a big secret. “I don’t have anybody else to pay attention to me the way I wish they would.”

Puppy starts to let his thighs slip apart, the motion so subtle it could be unintentional except for the way he quickly squeezes his legs closed when the camera gets an actual peek of how hard he is in the briefs, his cock starting to strain against the dark fabric. He ghosts his fingers in a circle around one of his nipples and whines, low and soft.

“I can be good for you instead,” Puppy says, leaning in toward the screen just a little, not enough to cut off the view of his nails scratching softly up and down his thigh. His eyes are wide and sweet, with an innocence that Minghao could almost believe is genuine.

Of course, that image doesn’t exactly last long. Puppy gives his shoulders another little wiggle, finally spreading his legs apart to show the bulge of his cock in his tight underwear. One of his hands slides up the inside of his thigh, fingers stopping just short of the fabric, pinching the soft skin between his fingers. He makes a soft sound, dragging his fingers over the tent of his underwear.

“Ah… I got something else new,” Puppy says, grinding his palm into his cock at a steady pace. He wiggles his shoulders like he can barely contain his own excitement. “I ordered this one special.”

For a reason he can’t quite explain to himself, Minghao’s mouth goes dry. Puppy rolls to the side, his ass facing the camera, wiggling it a little as he rustles in a box out of the frame. Puppy spreads his legs a little further, obviously aware that his ass is taking up most of the screen. Minghao doesn’t mind the view and he’s a little disappointed when Puppy sits up again, arching his back for a brief second before turning around.

Minghao isn’t looking at his ass, or the pleasant upward curve of his eyes when he smiles. Instead, he’s focused on the almost worryingly large fake cock he has in his hand. The silicone is a dark red, getting darker at the pointed tip and in spite of how big Puppy’s hands seem, his fingers are spread wide over the thick orb at the bottom, just above the wide flared base.

It isn’t that Minghao is vanilla or prude, but he’s never really conceived of a toy quite like that. He’s not sure that the thick bottom is even meant to go _inside_ someone. Puppy keeps his fingers spread over it, squeezing them and blinking sweetly at the camera.

“This is a lot bigger than my other knot,” Puppy says, his throat bobbing softly as he swallows. He drags his fingers up the tapered shaft, sliding his thumb over the pointed tip. “I haven’t tried to pop the whole thing in yet.”

Puppy wraps his fingers around the knot again, squeezing it in his palm. “Should I try it today?”

Minghao doesn’t bother to try keeping up with the reactions or the influx of tips that the suggestion brings. He’s strangely engrossed by the idea of seeing it, leaning toward the screen with one hand between his legs, gently massaging his own cock.

“Okay,” Puppy says, his voice sing-songing. He sets the toy to the side, resting on the bed next to his knee, hooking his thumbs in the elastic waist of his underwear and dragging them slowly down, taking his time in revealing his cock. He pulls it all the way off, letting the last of his clothes fall off the edge of the bed to be forgotten. He pauses, using both hands to adjust the ears on top of his head so they’re seated properly rather than tipping off to one side before wrapping his fingers around his cock, tapping the wet head of it against the bottom of his stomach. The microphone picks up on the soft slap of his skin each time and Minghao catches himself swallowing hard at the sound.

Puppy turns so his back is to the camera, spreading his legs wide and arching his back, reaching back to spread the round swell of his ass. There’s an easy shamelessness to it that’s at odds with his otherwise sweet personality, but Minghao doesn’t really care and he can only imagine that anyone else watching wouldn’t either. Puppy hums, dragging his fingers over his already damp rim, letting two of them dip inside.

“I didn’t wanna make you wait forever,” he says, leaning his head back to make eye contact with the camera. He’s still fingering himself, his fingers stretching apart every time he pulls them out before pushing them back in and Minghao isn’t sure which he’s supposed to be looking at. “I had to take a long time to get myself stretched out this much… see?”

He presses a third finger inside, apparently meeting no resistance at all in spite of his dry skin, groaning softly as his muscles stretch to fit it inside. But he’s apparently not finished there— he pulls his fingers out and lines the tips of them close together before pushing his ass out and letting all four sink inside.

Puppy whines, pushing them in until he’s stretched around the width of his own knuckles. His knees slip further apart on the bed, his thighs shaking from holding his weight up. He fucks himself slowly like that, rocking his hips back onto each pump of his fingers, his other palm pressing into the sheets to try and better brace his weight.

Minghao squeezes his fingers tighter around his own cock, biting hard on the inside of his cheek when Puppy slowly draws his own hand away. He takes the chance to wiggle his underwear off onto the floor, kicking it away from his ankle.

Puppy leans forward, pressing his chest into the bed, bringing his ass up further. He curls his shoulders to one side, so the camera catches his face as well. He grabs a bottle of lube from out of the frame, reaching back go squeeze an obscene amount of the cold fluid over his crack, letting it drip down his balls and the insides of his thighs, making a shiny mess of his skin. He shivers, setting the bottle down and grabbing the toy instead, dragging the smooth silicone up and down his wet skin to spread the lube over it.

Minghao can just make out the way his shoulders flinch slightly inward in preparation before he pushes the tapered head of the cock against his rim, letting it open up his pink rim around the dark-colored material. Puppy moans as it slides in, pushing it all the way down to the knot but stopping there with his palm against the base, arching his hips up into it.

“Really big,” he says, whimpering against his arm, barely loud enough to be heard. The ears have drifted slightly askew again but he doesn’t seem to notice, gripping the base of the toy and pulling it out until just the tip is inside. He lets it rest there for a moment, squeezing around the silicone before shoving it in again.

He fucks himself on the toy hard and fast, the sounds only getting louder as he goes. The bed squeaks when Puppy starts bouncing his hips along with his hand ignored cock bouncing against his stomach. When his thighs slip too far apart he whimpers, rolling on his side and bringing one leg close to his chest, putting a hand between his thighs to continue fucking himself like that. He screws the bottom of the toy as he pushes it in, bending it to the side in what Minghao assumes is an effort to drag the head against his prostate.

Instead, Puppy slows his frantic pace, working one, then the other side of the knot past his rim, his voice faltering as he stretches himself with it. He pushes again and the toy sinks in until his hole closes around it, engulfing the whole of the knot inside.

Puppy groans, dropping his head back against the bed and reaching down to squeeze his long-neglected cock, breath shaking in his chest.

“Ah, so much,” he says, words slightly slurred. His eyes are a little hazy when he looks up at the camera, dragging his fingers around his rim, pressing a knuckle into his perineum and making his cock drip more precome over his hand.

“I’m a good boy, right?” He asks, so sincerely that even Minghao’s heart does a confused little gymnastics move in his chest and he types _’yeah’_ followed by a little yellow heart before he thinks that maybe it’s a better idea not to.

It doesn’t matter— his response gets promptly lost in the flood of others and Puppy’s eyes curve up in a smile, his breath still coming in and out in hard gusts. “Did I do good? Can I come now, please?”

Rather than a flood of verbal responses, this prompts what seems like dozens of people to send tokens, followed by an argument of people sending them and others saying that Puppy should do something else— do more— before they let him come.

Puppy ducks his head forward and whimpers, still holding the knot inside as best he can. It slips anyway, the width of the knot pressing halfway out before Puppy stops it and shoves it in again. He twists it, sucking in a hard gasp of air, little shivers crawling up and down his back

“Please?” He says, blinking his damp eyes at the camera.

There’s a bar at the bottom of the screen that Minghao notices is nearly full, showing how close they are to the number of tokens requested for the session. Puppy keeps teasing his cock, circling his palm around the tip of it like he’s polishing a pool cue, the overload of sensation making his back arch, his toes curling.

Puppy’s computer makes a sound that echoes back over the microphone, the bar at the bottom flashing at the same time to notify everyone that they hit the right number. Puppy tosses his head back and moans, wrapping his fingers again around his cock and stroking himself desperately.

“T- thank you,” he says, his voice cracking as he speaks. The knot slips out of his hole again, all the way this time, and Puppy is quick to use his other hand to push it back into place, grinding back on it. He shudders, his legs squeezing together for a second before releasing again, squirming against the sheets.

Puppy holds the toy in place when he comes, his whole body pulled taut while he streaks come over his stomach, the pace of his hand hardly slowing down. The toy slips out and this time he doesn’t try to fix it, the dildo ends up falling to the side and leaving his rim open and empty.

He lays back on the bed for several seconds, chest heaving, before picking himself up and sitting on his knees, legs spread out to show his softening cock and the layer of come on his stomach.

Minghao blinks hazily at the screen, wiping his own hand off and trying to put his brain back in order. Puppy is mumbling out thanks to specific people who sent tokens, dragging his fingers lazily through the mess on his stomach.

“I’m glad you all stayed to play with me,” Puppy says, leaning in toward the screen and adjusting his ears once again. He blinks at the screen before nodding his head. “I’ll be back later on this week, okay?”

Puppy waves at the screen, his eyes scrunching up in a smile once again before the screen goes black.

It takes a moment of darkness before Minghao really processes that the whole thing is over, and even longer for him to wonder what the hell it is he doing.

He closes the window before he comes up with any answers.

**{* * *}**

Usually, Minghao isn’t the one left in charge of picking where they should go on Friday nights. All it took was one slightly too artsy wine bar before his friend decided that his taste didn’t quite line up enough either anyone else to do the picking.

But the one person he does always seem to line up with is Mingyu. So, the two of them end up together on a Friday night, dressed to the nines, in another slightly too fancy bar, drinking wine. It’s just the two of them, since “get dressed fancy just to get drunk” didn’t appeal to anybody else.

Minghao doesn’t mind it though; it’s easy to spend time with Mingyu and tease him for his white suit, watching him get closer and closer to ruining it with every glass of red wine he pours himself.

They’re almost down to the bottom of the cheap bottle they got to split, a demolished pile of bar snacks sitting off to the side, and Mingyu is laughing but Minghao can’t remember exactly why.

“This place is cool,” Mingyu says, leaning back and looking around, the light carving paths across the tan skin of his throat when he does. “I can’t believe Seokmin didn’t wanna come.”

“Seokmin doesn’t like wine or getting dressed up,” Minghao says, giggling into the rim of his glass. “This is like, the last place on Earth I’d expect him to want to go.”

Mingyu laughs again, his shoulders shaking, nearly spilling wine on his white shirt. Minghao reaches out and grabs his wrist, guiding him to set the glass back down on the table.

“I’m not that drunk,” Mingyu says, protesting, but he’s still grinning one of his goofy canine smiles.

“Sure you’re not,” Minghao says, leaning back in his seat a little and stretching his legs out.

He picked clothes that are at least less likely to get ruined— a silky shirt that’s just a tad too warm on the back of his neck and tight slacks along with a stacked series of necklaces he picked up from various little shops over time.

“You’ll be thanking me later,” Minghao continues, leaning his elbow on the table with a grin. “When you can still wear that outfit again another time.”

“Should I thank you if I’m hungover tomorrow too?” Mingyu asks, draining the rest of his glass.

“No, you should blame yourself for that,” Minghao says, picking up the bottle and giving it a little swirl in his hand. “We’re almost done, anyway.”

“I can get another bottle,” Mingyu says, lifting his shoulders in a shrug. “Neither of us drove.”

“If you wanna spend the money on it,” Minghao says, frowning a little. He’s never been a fan of letting other people buy things for him, but the reality of a college student budget means he’s not exactly in a place to turn down free alcohol, either. Mingyu smiles, nodding his head with a little too much eagerness for someone totally sober, grabbing the wine menu again. He leans forward, stretching his long arms across the table so Minghao can lean over it too.

“Is there anything you wanna try?” He asks, their heads leaning together.

Minghao, just for a second, glances over to take in the pink flush on Mingyu’s face, the arch of a small scar above his eyebrow, the long, dark line of his eyelashes. It isn’t a secret, to him or anyone else, that Mingyu is handsome— nice to look at.

“You’re paying,” Minghao says after scanning his eyes over the list. “You pick.”

Mingyu hums, pulling it back toward him. Their hair sticks together for a second when Mingyu pulls away and Minghao laughs a little, feeling it detangle.

There’s a cute guy behind the piano, just standing up for a break in his set, and Minghao debates with himself if he should go over and say something. He glances back at Mingyu, head still bent over the menu, tapping each individual offering with his nail and mumbling to himself as he reads it over, and decides against it.

Some nights its better to just be happy with what you already have.

“I need to piss,” Minghao says, sharp and inelegant, pushing his seat back from the table and carefully maneuvering his legs under him.

“You make our date night so romantic,” Mingyu says, his voice dry.

Minghao laughs, leaning his hand on Mingyu’s back. “Sorry, honey.”

Maybe it’s just his imagination, but it seems like Mingyu leans back into the touch of his hand, the broadness of his back warm under Minghao’s palm. Maybe it isn’t— it’s not like it would be weird coming from Mingyu with the way he constantly hangs off of anyone close enough. Minghao lets his hand linger, dragging it over the back of Mingyu’s shoulder as he walks away.

He’s so surprised walking into the men’s room to find floor-to-ceiling pink tiles that he actually backs out to double check that he’s in the right place. It makes him forget about the demands of his bladder, propping the door open with his hip to take a picture of the pink room and send it to Mingyu.

There are two small stalls but only one sink, with a fancy mirror hanging right above it. When Minghao actually finishes with his business, Mingyu is standing there, back against the wall, angling his phone to take a picture of his reflection in the mirror. Minghao laughs, stepping in the frame as soon as Mingyu finishes to wash his hands.

“Really?” He asks, looking over his shoulder with a wide grin. “Isn’t that kinda cheesy?”

“It’s cool,” Mingyu says, running his hand over the wall. “It’s different.”

Minghao rolls his eyes, drying his hands off. Before he can leave, though, Mingyu reaches out and grabs his arm, pulling Minghao in so they’re pressed together. Mingyu’s arm drapes over his shoulders, easy and casual, letting Minghao lean his head against Mingyu’s shoulder. Mingyu holds his phone out, long arms making it easy, tilting his face up toward the camera and shooting it a smile.

“There,” Mingyu says, two shots later when he’s satisfied with how they both look in the picture. “Now we’re both dumb and cheesy.”

Minghao could complain, but he finds he doesn’t really mind it all that much.

**{* * *}**

Here’s the thing… Minghao doesn’t mean to fall into the camboy thing any further than that. He doesn’t mean to make a habit to checking the site to see if Puppy has logged on again, and he doesn’t mean to end up looking around the twitter account linked on the empty streaming page.

But, even though he doesn’t mean to fall into it, he sort of does anyway.

The problem is that Puppy seems to be about as active on twitter as anyone else Minghao knows, with the distinct difference of half his updated leaning… explicit. But the ones that aren’t short clips of him touching himself or pictures of him showing off various collars and other assorted bits of gear are actually sort of mundane. He posts a lot of pictures of food, complains regularly about classmates, and once even tweets a selfie apparently right after waking up with the lower half of his face covered by a sheet and his hair rumbled over his forehead.

The _bigger_ problem is the photo he posts one evening— a mirror selfie in a bathroom with pink-tiled walls wearing a white suit. A picture that Minghao only sees the next morning, waking up with a dull pounding in his head after drinking maybe just a little too much the night before. He almost scrolls right past it.

It wouldn’t really be a problem except Minghao was five feet away when it was taken, a little warm and tipsy from the wine they’d been sharing, watching Mingyu take the picture and laughing.

Kim Mingyu, one of his best friends.

When he recognizes the picture, he ends up going through the rest of Puppy’s updates and noticing the pictures that line up with other times he’s seen Mingyu lately; when they went and got ice cream with Seokmin, last Friday when they went and got meat with a whole group of people.

Which means he can’t deny, even to himself, that he knows exactly who Puppy is.

**{* * *}**

Minghao only opens Puppy’s next stream with the intent to confirm what he’s already certain is true.

He’s is still wearing a mask— as far as Minghao can tell he never shows the bottom half of his face, even in his tweets.

But now that he knows what he’s looking for, it’s much easier to spot the features that he’s familiar with. Like the tiny scar Mingyu has over one eyebrow, or the mole on the side of his face, or the closed-over ear piercings that Minghao has bothered him to go get done again more than once.

Mingyu looks at the camera with his eyes scrunched up in a smile, crinkling at the corners, in a way that Minghao already knows well.

Too well. He knows he definitely should turn the whole thing off and walk away and pretend he doesn’t know anything about Mingyu’s secret revenue stream. He should block his Puppy twitter account and try his best to never think about any of it again.

He shouldn’t be watching Mingyu, his friend, sitting in front of a webcam, buckling a bright pink strip of leather around his throat, a little metal heart resting just under his Adam’s apple, but that’s exactly what he’s doing.

“I’ve had such a long week,” Mingyu says, stretching his arms over his head, arching his back as he does. He’s not undressed this time; he has on a chunky sweater that Minghao think he’s probably seen Mingyu before and a pair of shorts that are only just visible on his thighs. He stretches his arm far enough that the sweater reveals a little peek of his stomach.

Minghao should definitely log off now. He should close the window before it even more permanently alters the way he’s able to think about Mingyu for the rest of his life.

“I wish I had somebody to come cuddle with me,” Mingyu says, and even with the mask on, Minghao can see the way he puffs his cheeks out in a pout.

At least, Minghao doesn’t have to feel so bad for finding everything Mingyu does on screen so endearing. He’s used to all of Mingyu’s pouting looks and insistent complaints for attention. It’s a strange way to see all of Mingyu’s regular habits reflected, with an extra layer of coy attitude poured on top to make the whole thing alluring.

All in all, the reveal that 9ood_boy is Mingyu is ultimately not shocking as it would be otherwise.

Mingyu settles his hands in front of them, dragging over the bare, tanned skin of his thighs. Minghao feels a twinge of guilt for the way his eyes follow the motion, but not a much as he probably should be feeling. He leans forward, reading something on the screen before running his finger under the pink collar and scrunching his eyes up in a smile.

“I’ve been a good boy all week,” he says, answering the people who asked in the chat. His finger catches in the heart ring, giving it a slight tug. “I’ve been too tired to have any fun by myself.”

Mingyu spends a few minutes like that, laying on his stomach and responding to messages he gets, his answers usually bordering on suggestive, though some of them are responses to simple, friendly questions.

Minghao can’t keep himself from wondering what would happen if he sent Mingyu a text while he was doing this— or worse, what he’d do if he found out Minghao was watching somehow.

He’s once again debating turning it off when Mingyu sits up, dragging his hands up his thighs and leaning his head to the side, so the perky dark ears he has sat on top of his head fit in the frame as well.

“I’m gonna make a big mess tonight,” Mingyu says, drawing his voice out into a whine. His fingers stroke over the outline of his cock through the dark shorts, wiggling his hips forward like he’s too eager to resist even his own hand. He grinds his palm against his dick, bowing his head slightly forward and whimpering.

It takes a moment before he pulls his hand away, dragging his hands up his chest and pulling the hem of the sweater up until its folded up under his arms, using his hands to twist one of his hard nipples instead. He whimpers, slowing down when the chat overwhelmingly instructs him to. He tugs one of his nipples, his back arching forward with it, squeezing his thighs together before letting them slide apart again. His hands linger on his chest, tormenting his nipples or squeezing the skin until his fingers dent it in.

His hips roll forward against nothing and he whines. He drops his hands, pulling his sweater over his head and tossing it off over his shoulder before twisting around and grabbing a pillow from somewhere out of the frame.

(Mingyu’s pillows also have gray pillowcases, not that Minghao needed any further verification.)

Mingyu sticks the pillow between his legs, straddling it and closing his thighs tight around it. He grinds his hips forward and sighs, the steady drag of friction making his eyes flutter closed.

“Ah, I really…” Mingyu starts, trailing off with a whine when he starts rolling his hips back and forth at a steady pace. He presses his hands into the pillow to pin it in place, shivering.

He keeps going like that for a moment or two, and Minghao wonders if he’s just planning to get himself off like this and log off. But Mingyu’s hips stay slow, teasing himself with the friction. He lifts his head to shoot a particularly tormented look at the camera.

Just when Minghao is pretty sure Mingyu is right on the edge— if the shaking of his thighs and the way his voice starts to come out on every exhale is anything to go by— he stops himself, reaching one hand down to grasp his cock and groan.

“O- one,” he mumbles, still struggling to catch his breath. Mingyu pulls his hand off his cock, squeezing it into a fist in the air and shaking his head. 

Without meaning to, Minghao’s breath sticks somewhere in his chest, watching Mingyu let his orgasm slip away. He sits up, legs still trembling, turning himself around to stick his ass out at the camera, pulling his shorts down. He lets the elastic of the waist catch just under his ass, using his hands to pull his cheeks apart.

He teases the dry tip of his finger against his rim, letting out another strained sound before using his other hand to reach out and grab the bottle of lube, dousing it over his skin rather than on his fingers.

Well, he did promise a mess. Mingyu presses two fingers inside himself, turning his neck to look down at the camera as he does. He tips his head back and groans and Minghao can’t help but wonder how much of it is an act and how much Mingyu really feels. He certainly manages to be convincing on screen and Mingyu has never really been a good liar…

He leans forward, still pushing his fingers in all the way to the knuckle, to grab something else he has sitting out of frame, probably on top of his desk, judging from the angle. He ends up with a short, fluffy tail attached to a plug in his hand, the color matching that of the ears he has on.

Mingyu circles it around his hole to wet the tip of it before pulling his fingers out and sliding it in instead. His body opens up surprisingly well around the dark silicone, letting it sink in slowly until it disappears down to the flared base. Mingyu sighs, almost relieved, dragging his nails up the well of his ass before slapping himself with both hands.

He rolls his hips back, holding himself open again so the base is visible, pressed up against his rim. His eyes dip down to the chat, or maybe just to check the contents of the tip jar, and he nods his head.

“Yeah, I’m a bitch in heat,” Mingyu says, giving his ass another slap that leaves his skin glowing just a little redder, the faint imprint of his wide palm left behind. He whimpers, giving his hips a wiggle. “I get lonely and I need something to fill me up.”

He turns around once again, his cock still trapped in the shorts, his cock leaking a wet patch into the thin-stretched fabric. He pulls the shorts down, letting them drag against his skin, hips bucking forward into the elastic.

When the fabric is out of the way he wraps his fingers around his cock, stroking his other hand over his stomach while he fucks into his fingers. His cock continues leaking, making the slide of his fingers wet and easy as they drag over his skin.

Mingyu’s pace is quick and merciless, twisting his wrist and rubbing his palm in circles around the head of his cock. The speed makes him shake, his voice quivering and his voice just on the edge of breaking apart.

Once again, he works himself right up to the edge before pulling both hands away, nails scraping thin lines over his thighs. His cock twitches, flushing a darker, angrier shade of red at the denial. Mingyu keeps his nails dug into his thigh, leaning forward a little while he pants.

“Two,” he says, staring pitifully into the camera once again.

Predictably, the wave of tokens spikes until Minghao can’t even make out anything else in the chat.

“One more?” Mingyu says, whimpering softly. “I need to come so bad.”

It’s impossible to follow the pace of the chat, but Minghao is pretty sure whatever the answer is it doesn’t matter anyway. Mingyu stretches one arm behind him, pressing the toy in at a different angle. He doesn’t grab his cock again but pulls something else off the top of his desk.

It takes just a few seconds extra for Minghao’s brain to put together the fact that Mingyu now has a fleshlight in his hand. He presses the opening against the head of his cock, tilting his head back between his shoulders as it slips in.

“Oh, fuck,” he says, so shaken and genuine that it’s almost what makes Minghao tip too hard over the edge. He manages to stop himself, unwilling to finish before he sees exactly what it is Mingyu is planning on doing at the end.

He leans back, letting the pillow support him, spreading his legs out so the camera can see his cock buried in the fleshy sleeve and the tail between his thighs. His back arches, planting his heels on the bed and fucking up into the toy, squeezing his fist around it tighter.

The bed creaks under him as he bounces his hips and Minghao, unbidden, wonders if his roommate ever catches an accidental earful of Mingyu doing his job.

(He shoves it out of his mind because he’s pretty sure if Jihoon ever _did_ , Mingyu would never be seen again.)

“Please, please,” Mingyu says, his head tilted back, begging for relief from no one in particular. He twists his wrist, his hips slapping against the soft opening of the toy. 

Minghao grits his teeth together, resisting the urge to follow Mingyu’s breakneck pace, bouncing his hips up unevenly to try and prolong the time he spends with his cock buried inside the sleeve.

He pulls it away with a gasp, his skin shining wet now, cock landing against his stomach and leaving a smear on his stomach.

Mingyu rolls on his side, drawing his knees up toward his chest, nails dragging across the sheets. It takes him a moment to uncurl, legs quivering, spreading them out again.

“Three,” he says, his voice weak. “Did I do good?”

He picks himself up slowly, staring into the camera with damp eyes that make Minghao’s chest in a stupid, fond way he has no right to be feeling.

The responses make him smile, his eyes curving when he does, the expression at odds with his fingers tracing over the damp skin of his cock.

“Can I come now? Please?” Mingyu’s voice stretches out sweet and wheedling— it’s the same tone he uses when Minghao doesn’t give him something he wants and it makes Minghao’s stomach squeeze around nothing.

The corners of his eyes wrinkle and he sets the toy to the side, wrapping his hand around his cock again. He’s slower this time, building his pace a little more patiently.

It surprises Minghao, now that the end is in sight. Mingyu shoves the pillow between his legs again, pressing his cock against it with his hand and sawing his hips back and forth eagerly. His voice gets tangled up with mumbled thanks and scattered obscenities.

Mingyu arches forward, yelping out a surprised sound when he comes, the ears knocked askew on his head.

In spite of Mingyu’s earlier promise to make a mess, Minghao isn’t expecting to watch him nearly cover his entire hand in come, stroking himself through the orgasm, seeming to only draw more out with each pass of his hand. Come drips off his fingers and down the length of his cock, and each pass of his fist produces a slick, filthy sound that Minghao is definitely going to replay in his head later.

When he does finally let go of his cock, he’s apparently not quite finished, one final stream of come ending up streaking his pillow. Mingyu slumps forward when he finishes, his chest heaving, eyes barely open.

“Ah, I really needed that,” Mingyu says, when he can string words together again, it seems. “Thanks for helping me out.”

He doesn’t linger around saying thank yous and goodbyes this time, the screen going dark a few seconds later.

Like the last time, Minghao is left staring at the dark window on his computer, wondering exactly what the fuck he’s supposed to do from here.

**{* * *}**

“I can’t believe you wanted to go shopping without me,” Mingyu says to him, a few days later as himself and not a guy who gets paid for letting people call him _”Puppy”_ online.

“I told you I was just gonna look around,” Minghao says, rolling his eyes and attempting to shake Mingyu’s hand off of the back of his neck.

Usually, he doesn’t mind Mingyu clinging to him, but at the moment he’s still working on properly compartmentalizing his life once again. It’s not exactly his fault that he somehow stumbled across Mingyu’s secret double life, though a streak of remarkably terrible luck, and he’s not sure what he’s supposed to do about it.

Mingyu huffs, put out at the mild rejection, dropping his hand and looking at Minghao with a frown. “I like looking around.”

Minghao rolls his eyes at the pout on Mingyu’s face, but it feels more forced than usual.

He can feel himself being weird and stilted around Mingyu. It’s been like this for the last few days, and Minghao is already out of excuses to avoid spending time with him.

(Not that he was really trying that hard to come up with any, to begin with.)

“You’ve been too busy for me all week,” Mingyu says, tugging at the edge of Minghao’s sleeve when he tries to walk just a little further away. “I’m starting to feel neglected.”

There’s a little furrow between his eyebrows when he says it, and Minghao can’t help but think he’s seen Mingyu make that same face with two fingers stuck up his ass, sans the quivering lower lip currently aimed at him. It makes Minghao’s stomach twist up like one of those incomprehensible steel puzzles; a mess that would be impossible for him to untangle.

“You’ve been busy too,” Minghao says, though it’s a weak defense and he has to look away before Mingyu notices the heat climbing up into his cheeks. “Where did you wanna go?”

“This was your idea,” Mingyu says, laughing a little. “Shouldn’t you know?”

“Oh,” Minghao says, shaking his head in a wasted effort to clear out all the obscene Mingyu-related thoughts rattling around inside his skull. “Yeah, right.”

They end up in a tiny secondhand store that Minghao likes— the clothes are more expensive but only because the store is picky about what they take from people, so the selection is better than most other places. The size of the shop, however, means Mingyu spends pretty much all his time crunched directly against Minghao’s side in a vain effort to get out of people’s way.

“I should make you sit outside,” Minghao says, twisting around only to find himself chest-to-chest with Mingyu.

Mingyu laughs, his head ducked a little, hands hovering in the air like he’s not sure what to do with them now that Minghao is pressed against him. “That’s not nice. I’m being good.”

Minghao’s stomach drops straight down to the molten core of the planet.

It must take him longer than he thinks to respond, the TV salt-and-pepper static playing between his ears making it hard to track accurately how many seconds he spends staring at Mingyu in perfect, stunned silence.

“Minghao?” Mingyu says, putting his hands on Minghao’s shoulders with another little laugh. “You okay?”

“Y- yeah,” Minghao says, shaking his head and clearing his throat. “I’m good.”

Mingyu frowns, lifting one hand and pressing the back of it against the side of Minghao’s face, leaning in even closer. “You sure? You look all pale.”

“I’m fine,” Minghao says, taking a step back with a laugh that comes out a little wrong, still.

“I’m gonna try this on,” Minghao says, holding up one of the shirts he already had in his hand. It’s kind of ugly, on second glance, and definitely too big for him, but it’s an excuse to dart off into one of the curtained off changing rooms and try very hard not to think about anything.

So much for compartmentalizing.

**Author's Note:**

> I don't really know what I'm doing.
> 
> I'm gonna write more of this though.
> 
> @97lesbian.


End file.
